`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2019/11/24 08:13:34
// Design Name: 
// Module Name: shift
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module shift(
    input [7:0]BIT,
    input SER,
    input STLD,
    input CLK,
    input CLKIH,
    output Q,
    output Q_N
    );
    wire clk;
assign clk=CLK|CLKIH;
assign Q=mem[7];
assign Q_N=~Q;  
reg [7:0]mem;
always@(posedge clk or negedge STLD)
    if(!STLD)
        mem<=BIT;
    else
        mem<={mem[6:0],SER};
endmodule
